﻿//
// eCRAM, a monthly activity report web application
// Copyright (C) 2010  Aptea
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Routing; 

namespace eCRAM.UIElement
{
    /// <summary>
    /// HtmlHelper extension method that will generate menu control
    /// </summary>
    public static class MyHtmlMenuHelper
    {
        public static string TabbedMenu(this HtmlHelper helper, IEnumerable<MenuTab> tabs) { 
	        var route = helper.ViewContext.RequestContext.RouteData;
	        var controller = route.GetRequiredString("controller");
	        var action = route.GetRequiredString("action");
	        var menu = "\n\n<ul id=\"menu\">";
            //During the loop we are checking to see if the MenuTab instance’s controller and
            //action match the current controller and action
	        foreach (var tab in tabs) {
		        if (controller == tab.Controller && action == tab.Action)
		            menu += "\n\t<li>" + helper.ActionLink(tab.Text, tab.Action, tab.Controller, new { @class = "selected" }) + "</li>";
		        else
		            menu += "\n\t<li>" + helper.ActionLink(tab.Text,tab.Action, tab.Controller) + "</li>";
		    }
		    menu += "\n</ul>\n\n";
		    return menu;
	    }
    }
}